$(function () {
    $('.skin-minimal input').iCheck({
        checkboxClass: 'icheckbox-blue',
        radioClass: 'iradio-blue',
        increaseArea: '20%'
    });

    $("#form-admin-permission-edit").validate({
        rules:{
            
            menuType:{
                required:true
            },
            name:{
                required:true
            }
        },
        messages : {
           menuType :{
               required:"菜单类型不能为空"
           },
           name:{
              required:"菜单名称不能为空"
           }
        },
        onkeyup:false,
        focusCleanup:true,
        success:"valid",
        submitHandler:function(form){
            $(form).ajaxSubmit({
                type: 'post',
                url: "/menu/edit",
                dataType:"json",
                success: function(data){
                    if(data.code === "0000"){
                        succeedMessage("修改菜单成功！");
                        let index = parent.layer.getFrameIndex(window.name);
                        parent.location.reload();
                        parent.layer.close(index);
                    }else {
                        errorMessage(data.message);
                    }
                }
            });
            return false; // 非常重要，如果是false，则表明是不跳转，在本页上处理，也就是ajax，如果是非false，则传统的form跳转。
        }
    });


    //页面初始化的时候初始化显示隐藏表单元素
    let checkedMenuType = $("input[name='menuType']:checked").val();
    if (checkedMenuType == '0') {
        $(".parentDiv").hide();
        $(".URLDiv").hide();
        $(".permsDiv").hide();
        $(".iconDiv").show();
        $("#parentName").val("");
        //动态改变验证规则
        $("#parentId").rules("remove");
        $("#path").rules("remove");
        $("#authorisationCode").rules("remove");
    } else if(checkedMenuType == '1'){
        $(".parentDiv").show();
        $(".URLDiv").show();
        $(".permsDiv").show();
        $(".sortDiv").show();
        $(".iconDiv").hide();
        //动态改变验证规则
        $("#parentId").rules("add",{required: true});
        $("#path").rules("add",{required: true});
        $("#authorisationCode").rules("add",{required: true});
        getPermissionList(checkedMenuType);
    } else if(checkedMenuType == '2'){
        $(".parentDiv").show();
        $(".URLDiv").hide();
        $(".permsDiv").show();
        $(".iconDiv").hide();
        //动态改变验证规则
        $("#parentId").rules("add",{required: true});
        $("#path").rules("remove");
        $("#authorisationCode").rules("add",{required: true});
        getPermissionList(checkedMenuType);
    }

    //为iCheck绑定选中事件
    $("input[name='menuType']").on('ifChecked', function(event){
        let value = $(this).val();
        if (value == '0') {
            $(".parentDiv").hide();
            $(".URLDiv").hide();
            $(".permsDiv").hide();
            $(".iconDiv").show();
            //动态改变验证规则
            $("#parentId").rules("remove");
            $("#path").rules("remove");
            $("#authorisationCode").rules("remove");
        } else if(value == '1'){
            $(".parentDiv").show();
            $(".URLDiv").show();
            $(".permsDiv").show();
            $(".iconDiv").hide();
            //动态改变验证规则
            $("#parentId").rules("add",{required: true});
            $("#path").rules("add",{required: true});
            $("#authorisationCode").rules("add",{required: true});
            getPermissionList(value);
        } else if(value == '2'){
            $(".parentDiv").show();
            $(".URLDiv").hide();
            $(".permsDiv").show();
            $(".iconDiv").hide();
            //动态改变验证规则
            $("#parentId").rules("add",{required: true});
            $("#path").rules("remove");
            $("#authorisationCode").rules("add",{required: true});
            getPermissionList(value);
        }
    });

    /**
     * 根据类型获取上级节点列表
     * 因为左测菜单目前只有一级目录，所以添加权限节点选择类型为目录时是不需要选择上级节点
     * @param typeValue
     */
    function getPermissionList(typeValue) {
        var type = "";
        if(typeValue == '1'){
            type = "0";
        }else if(typeValue == '2'){
            type = "1";
        }
        $.ajax({
            type:"GET",
            dataType:"json",
            url: "/menu/menuTypeList?menuType="+type,
            data:{
                "timestamp":new Date().getTime()
            },
            success: function (data) {
                if (data.code === "0000") {
                    let defaultParentId = $("#defaultParentId").val();
                    if(defaultParentId){
                         defaultParentId = parseInt(defaultParentId);
                    }
                    
                    $("#parentId").html("");
                    $("#parentName").val("");
                    var opt = "<option value=''>--请选择--</option>";
                    $.each(data.data, function (i, v) {
                        if(defaultParentId === v.id){
                          opt += "<option value='" + v.id + "' selected>" + v.name + "</option>"
                        }else{
                           opt += "<option value='" + v.id + "'>" + v.name + "</option>"
                        }
                        
                    });
                    $("#parentId").html(opt);
                }
            }
        });
    }

    //为parentName赋值
    $("#parentId").change(function () {
       $("#parentName").val($(this).find("option:selected").text())
    });
});